<?php
/**
 * カレンダー月表示
 */
require_once 'Smarty/Components/Components.php';
require_once 'Smarty/Components/hidden.php';
require_once dirname(__FILE__) . '/../AgeCheckbox/AgeCheckbox.php';
require_once dirname(__FILE__) . '/../Calendar/WeekList.php';
require_once dirname(__FILE__) . '/../DateSelect/DateSelect.php';
require_once APPLICATION_PATH . '/models/HttpRequest/HttpRequestController.php';

/**
 * カレンダー月表示コンポーネントクラス
 * Enter description here ...
 * @author admin
 *
 */
class Components_MonthCalendar extends Smarty_Components
{
	/** テンプレートファイル名 */
	const TEMPLATE_NAME = 'MonthCalendar.tpl';

	/** プレコンパイルフォルダー */
	protected $_sCompileDir;
	/** プレコンパイルファイル名プレフィックス */
	protected $_sCompileId;

	/** 学年選択チェックボックスオブジェクト */
	protected $_objAgeCheckbox;

	/** 月表示カレンダーオブジェクト */
	protected $_objMonthCalendar;

	/** 月移動リンクオブジェクト */
	protected $_objMonthLink;

	/**
	 * コンストラクタ
	 * Enter description here ...
	 * @param  $sCompileId プレコンパイルファイル名プレフィックス
	 */
	public function __construct($KindSchol, $sCompileId)
	{
		/** 中間ファイル生成フォルダー */
		$sCompileDir = dirname(__FILE__).'/../../data/templates_c';

		$this->_sCompileDir = $sCompileDir;
		$this->_sCompileId = $sCompileId;

		/** 親呼び出し */
		parent::__construct(dirname(__FILE__), $sCompileDir, $sCompileId);

		/** 学年選択チェックボックス初期化 */
		$this->_objAgeCheckbox = new Components_AgeCheckbox($KindSchol);

		/** 月表示カレンダー初期化 */
		$this->_objMonthCalendar = new Components_Calendar_Weeklist();

		/** 学年選択フォームＨＩＤＤＥＮコンポーネントクラス初期化 */
		$this->_initHiddenAgeSelectForm();

		/** 月移動リンクコンポーネントクラス初期化 */
		$this->_objMonthLink = new Components_DateSelect($sCompileId);
	}

	public function fetch()
	{
		$this->view->ageCheckbox = $this->_objAgeCheckbox->fetch();
		$this->view->monthCalendar = $this->_objMonthCalendar->fetch();
		$this->view->HiddenBlock = $this->_objHidden->fetch();
		$this->view->MonthSelect = $this->_objMonthLink->fetch();
		$sHtml = parent::fetch(self::TEMPLATE_NAME);
		return $sHtml;
	}

	/**
	* 学年選択フォームＨＩＤＤＥＮブロック初期化
	*/
	protected function _initHiddenAgeSelectForm()
	{
		$this->_objHidden = new SmartyComponents_Hidden(
		$this->_sCompileDir,
		$this->_sCompileId
		);

		foreach ($_REQUEST as $Key=>$Value) {
			switch ($Key) {
				case HttpRequest::NAME_AGE_CHECKBOX:
				case HttpRequest::NAME_COOKIE_AGE:
					break;
				default:
					$this->_objHidden->addInfo($Key,$Value);
			}
		}
	}
}